home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Source Code / Peter Lewis / PNL Libraries / MyFSAsyncs.p < prev    next >
Encoding:
Text File  |  1993-12-05  |  2.6 KB  |  115 lines  |  [TEXT/PJMM]

  1. unit MyFSAsyncs;
  2.  
  3. interface
  4.  
  5.     type
  6.         XParamBlockRec = record
  7.                 a5: ptr;
  8.                 completion: ProcPtr;
  9.                 pb: ParamBlockRec;
  10.             end;
  11.         XParmBlkPtr = ^XParamBlockRec;
  12.  
  13.     procedure FSReadAsync (pbp: univ ParmBlkPtr; comp: ProcPtr);
  14.     procedure FSWriteAsync (pbp: univ ParmBlkPtr; comp: ProcPtr);
  15.     procedure FSCloseAsync (pbp: univ ParmBlkPtr; comp: ProcPtr);
  16.     procedure FSDeleteAsync (pbp: univ ParmBlkPtr; comp: ProcPtr);
  17.     procedure FSCatMoveAsync (pbp: univ ParmBlkPtr; comp: ProcPtr);
  18.     procedure FSRenameAsync (pbp: univ ParmBlkPtr; comp: ProcPtr);
  19.     procedure FSExchangeFilesAsync (pbp: univ ParmBlkPtr; comp: ProcPtr);
  20.  
  21. implementation
  22.  
  23.     uses
  24.         PreCompletion, QLowLevel;
  25.  
  26. {$PUSH}
  27. {$D-}
  28.  
  29.     procedure FSReadAsync (pbp: univ ParmBlkPtr; comp: ProcPtr);
  30.         var
  31.             junk: OSErr;
  32.             prp: XParmBlkPtr;
  33.     begin
  34.         prp := XParmBlkPtr(ord(pbp) - 8);
  35.         prp^.a5 := GetRegA5;
  36.         prp^.completion := comp;
  37.         pbp^.ioCompletion := @PreCompletion;
  38.         junk := PBReadAsync(pbp);
  39.     end;
  40.  
  41.     procedure FSWriteAsync (pbp: univ ParmBlkPtr; comp: ProcPtr);
  42.         var
  43.             junk: OSErr;
  44.             prp: XParmBlkPtr;
  45.     begin
  46.         prp := XParmBlkPtr(ord(pbp) - 8);
  47.         prp^.a5 := GetRegA5;
  48.         prp^.completion := comp;
  49.         pbp^.ioCompletion := @PreCompletion;
  50.         junk := PBWriteAsync(pbp);
  51.     end;
  52.  
  53.     procedure FSCloseAsync (pbp: univ ParmBlkPtr; comp: ProcPtr);
  54.         var
  55.             junk: OSErr;
  56.             prp: XParmBlkPtr;
  57.     begin
  58.         prp := XParmBlkPtr(ord(pbp) - 8);
  59.         prp^.a5 := GetRegA5;
  60.         prp^.completion := comp;
  61.         pbp^.ioCompletion := @PreCompletion;
  62.         junk := PBCloseAsync(pbp);
  63.     end;
  64.  
  65.     procedure FSRenameAsync (pbp: univ ParmBlkPtr; comp: ProcPtr);
  66.         var
  67.             junk: OSErr;
  68.             prp: XParmBlkPtr;
  69.     begin
  70.         prp := XParmBlkPtr(ord(pbp) - 8);
  71.         prp^.a5 := GetRegA5;
  72.         prp^.completion := comp;
  73.         pbp^.ioCompletion := @PreCompletion;
  74.         junk := PBHRenameAsync(HParmBlkPtr(pbp));
  75.     end;
  76.  
  77.     procedure FSDeleteAsync (pbp: univ ParmBlkPtr; comp: ProcPtr);
  78.         var
  79.             junk: OSErr;
  80.             prp: XParmBlkPtr;
  81.     begin
  82.         prp := XParmBlkPtr(ord(pbp) - 8);
  83.         prp^.a5 := GetRegA5;
  84.         prp^.completion := comp;
  85.         pbp^.ioCompletion := @PreCompletion;
  86.         junk := PBHDeleteAsync(HParmBlkPtr(pbp));
  87.     end;
  88.  
  89.     procedure FSCatMoveAsync (pbp: univ ParmBlkPtr; comp: ProcPtr);
  90.         var
  91.             junk: OSErr;
  92.             prp: XParmBlkPtr;
  93.     begin
  94.         prp := XParmBlkPtr(ord(pbp) - 8);
  95.         prp^.a5 := GetRegA5;
  96.         prp^.completion := comp;
  97.         pbp^.ioCompletion := @PreCompletion;
  98.         junk := PBCatMoveAsync(CMovePBPtr(pbp));
  99.     end;
  100.  
  101.     procedure FSExchangeFilesAsync (pbp: univ ParmBlkPtr; comp: ProcPtr);
  102.         var
  103.             junk: OSErr;
  104.             prp: XParmBlkPtr;
  105.     begin
  106.         prp := XParmBlkPtr(ord(pbp) - 8);
  107.         prp^.a5 := GetRegA5;
  108.         prp^.completion := comp;
  109.         pbp^.ioCompletion := @PreCompletion;
  110.         junk := PBExchangeFilesAsync(HParmBlkPtr(pbp));
  111.     end;
  112.  
  113. {$POP}
  114.  
  115. end.